package com.example.demo.api.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.example.demo.api.UserService;
import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;
import com.example.demo.vo.UserVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Hy on 2018/3/30.
 */
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;

    public List<UserVo> getAllUsers(){
        List<User> users = userDao.findAll();
        List<UserVo> list=new ArrayList<>();
        for (User user:users
             ) {
            UserVo userVo=new UserVo();
            BeanUtils.copyProperties(user, userVo);
            list.add(userVo);
        }
        return list;
    }
    @Override
    public UserVo findOneById(Integer id) {
        //User user = userDao.getOne(id);
        User user = userDao.findOne(id);
        UserVo userVo=new UserVo();
        BeanUtils.copyProperties(user, userVo);
        return userVo;
    }

    @Override
    public int insertOne(UserVo user) {
        User usr = new User();
        BeanUtils.copyProperties(user, usr);
        User save = userDao.save(usr);
        return save.getId();
    }

    @Override
    public int delById(Integer id) {
        userDao.delete(id);
        return 0;
    }


//    @Autowired
//    private UserMapper userMapper;
//    @Override
//    public User findOneById(Integer id) {
//        return userMapper.selectByPrimaryKey(id);
//    }
//
//    @Override
//    public User findOneByNameAndPwd(String userName, String pwd) {
//        return userMapper.selectOneByNameAndPwd(userName,pwd);
//    }
//
//    @Override
//    public User findOneByUserName(String userName) {
//        return userMapper.selectOneByUserName(userName);
//    }
//
//    @Override
//    public List<User> findListByGroupId(int groupId) {
//        return null;
//    }
//
//    @Override
//    public List<User> findListByRoles(String roleTypes) {
//        return null;
//    }
//
//    @Override
//    public PageModel<User> findPageByQuery(UserQuery query) {
//        return null;
//    }
//
//    @Override
//    public int findCountByQuery(UserQuery query) {
//        return 0;
//    }
//
//    @Override
//    public int findCountByUserName(String userName, Integer notId) {
//        if(notId == null) {
//            notId = 0;
//        }
//        return this.userMapper.selectCountByUserName(userName, notId);
//    }
//
//    @Override
//    public int insertOne(User user) {
//        return userMapper.insert(user);
//    }
//
//    @Override
//    public int insertSelective(User user) {
//        return userMapper.insertSelective(user);
//    }
//
//    @Override
//    public int updateById(User user) {
//        return 0;
//    }
//
//    @Override
//    public int updateByIdSelective(User user) {
//        return userMapper.updateByPrimaryKeySelective(user);
//    }
//
//    @Override
//    public int delById(Integer id) {
//        return userMapper.deleteByPrimaryKey(id);
//    }
}
